در این آموزش یک پروژه فرضی داریم که اطلاعات دانشجویان را در view به صورت زیر نشان میدهد
@foreach($tempToken as $value)
<tr>
<td>{{$value->user->name}} {{$value->user->last_name}} </td>
<td>{{$value->user->mobile}} </td>
</tr>
@endforeach
میخواهیم به محض کلیک روی دکمه زیر خروجی Excel برای کاربر دانلود شود.در این مثال ما name را به ورودی داده ایم که شما میتوانید توسط Request اطلاعات را بگیرید
<a href="{{ route('download.excel', ['name' => $_GET['name']]) }}">
دانلود خروجی Excel <i class="tf-icons bx bx-export"></i>
</a>
برای ادامه کار ابتدا composer زیر را نصب میکنیم
composer require maatwebsite/excel
در ادامه یک export برای ساخت خروجی اکسل میسازیم
php artisan make:export TempMaliExport
در این اکسپورت ما خروجی اکسل را از view میگیریم و به صورت زیر آن را معرفی میکنیم.
نکته اول:در اینجا چندین روش برای خروجی گرفتن وجود دارد که میتوانید از داکیومنت خود برنامه از اینجا آن را مطالعه کنید
نکته دوم:ما از ShouldAutoSize, WithCustomStartCell برای نمایش بهتر مطالب در ستون ها اکسل استغاده کرده ایم
<?php
namespace App\Exports;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithCustomStartCell;
use Maatwebsite\Excel\Concerns\FromView;
use Illuminate\Contracts\View\View;
class TempMaliExport implements FromView, ShouldAutoSize, WithCustomStartCell
{
protected $tempTokens;
public function __construct($tempTokens)
{
$this->tempTokens = $tempTokens;
}
public function view(): View
{
return view('exports.temp_mali', [
'tempTokens' => $this->tempTokens,
]);
}
public function startCell(): string
{
return 'A1'; // شروع از سلول A1
}
}
view را در فولدر export با محتوای زیر ایجاد میکنیم. بعد از این کار تمام است و با کلیک روی لینک یک فایل اکسل دانلود میشود
<table>
<thead>
<tr>
<th>نام </th>
<th>شماره تلفن</th>
</tr>
</thead>
<tbody>
@foreach($tempTokens as $tempToken)
<tr>
<td>{{ $tempToken->user->name }} {{ $tempToken->user->last_name }}</td>
<td>{{ $tempToken->user->mobile }}</td>
</tr>
@endforeach
</tbody>
</table>
امیدوارم استفاده کرده باشید.اگر سوال یا نظری دارید در کامنت ها مطرح کنید
نظرات خود را درباره این جلسه با ما در میان بگذارید
برای ثبت نظر لطفا ابتدا از اینجا وارد حساب کاربری خود شوید